package sv.gob.mtps.sib.model;

// Generated 09-28-2012 01:39:57 PM by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Producto generated by hbm2java
 */
@Entity
@Table(name = "producto", schema = "sib")
public class Producto implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int idProducto;
	private Unidadmedida unidadmedida;
	private String descripcionProducto;
	private int idEstadoProducto;
	private String nombreProducto;
	private String numeroProducto;
	private int stockminimoProducto;
	private Set<Promedio> promedios = new HashSet<Promedio>(0);
	private Set<ProductoHasObjetoespecifico> productoHasObjetoespecificos = new HashSet<ProductoHasObjetoespecifico>(
			0);

	public Producto() {
	}

	public Producto(int idProducto, Unidadmedida unidadmedida,
			int idEstadoProducto, String nombreProducto, int stockminimoProducto) {
		this.idProducto = idProducto;
		this.unidadmedida = unidadmedida;
		this.idEstadoProducto = idEstadoProducto;
		this.nombreProducto = nombreProducto;
		this.stockminimoProducto = stockminimoProducto;
	}

	public Producto(int idProducto, Unidadmedida unidadmedida,
			String descripcionProducto, int idEstadoProducto,
			String nombreProducto, String numeroProducto,
			int stockminimoProducto, Set<Promedio> promedios,
			Set<ProductoHasObjetoespecifico> productoHasObjetoespecificos) {
		this.idProducto = idProducto;
		this.unidadmedida = unidadmedida;
		this.descripcionProducto = descripcionProducto;
		this.idEstadoProducto = idEstadoProducto;
		this.nombreProducto = nombreProducto;
		this.numeroProducto = numeroProducto;
		this.stockminimoProducto = stockminimoProducto;
		this.promedios = promedios;
		this.productoHasObjetoespecificos = productoHasObjetoespecificos;
	}

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name = "id_producto", unique = true, nullable = false)
	public int getIdProducto() {
		return this.idProducto;
	}

	public void setIdProducto(int idProducto) {
		this.idProducto = idProducto;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "id_unidadmedida", nullable = false)
	public Unidadmedida getUnidadmedida() {
		return this.unidadmedida;
	}

	public void setUnidadmedida(Unidadmedida unidadmedida) {
		this.unidadmedida = unidadmedida;
	}

	@Column(name = "descripcion_producto", length = 500)
	public String getDescripcionProducto() {
		return this.descripcionProducto;
	}

	public void setDescripcionProducto(String descripcionProducto) {
		this.descripcionProducto = descripcionProducto;
	}

	@Column(name = "id_estado_producto", nullable = false)
	public int getIdEstadoProducto() {
		return this.idEstadoProducto;
	}

	public void setIdEstadoProducto(int idEstadoProducto) {
		this.idEstadoProducto = idEstadoProducto;
	}

	@Column(name = "nombre_producto", nullable = false, length = 50)
	public String getNombreProducto() {
		return this.nombreProducto;
	}

	public void setNombreProducto(String nombreProducto) {
		this.nombreProducto = nombreProducto;
	}

	@Column(name = "numero_producto", length = 50)
	public String getNumeroProducto() {
		return this.numeroProducto;
	}

	public void setNumeroProducto(String numeroProducto) {
		this.numeroProducto = numeroProducto;
	}

	@Column(name = "stockminimo_producto", nullable = false)
	public int getStockminimoProducto() {
		return this.stockminimoProducto;
	}

	public void setStockminimoProducto(int stockminimoProducto) {
		this.stockminimoProducto = stockminimoProducto;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "producto")
	public Set<Promedio> getPromedios() {
		return this.promedios;
	}

	public void setPromedios(Set<Promedio> promedios) {
		this.promedios = promedios;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "producto")
	public Set<ProductoHasObjetoespecifico> getProductoHasObjetoespecificos() {
		return this.productoHasObjetoespecificos;
	}

	public void setProductoHasObjetoespecificos(
			Set<ProductoHasObjetoespecifico> productoHasObjetoespecificos) {
		this.productoHasObjetoespecificos = productoHasObjetoespecificos;
	}

}
